
package censo

import scala.collection.mutable.ArrayBuffer
import Packtrait.CriterioDeCondicionFiltro
import Packtrait.CriterioDeCondicionFiltro



//aca hay que modificar... los metodos deberian llamarse igual a los del trait, y la parte de comparar por año deberia ser solamente
//para los que lo necesiten, no para todos como lo tenemos nosotros.
class Censo(anioCenso: Int) extends CriterioDeCondicionFiltro {
  
  def condicion(registro:Registro):Boolean = {
    registro.anio == anioCenso
  }
//  
////  def totalDeVentas():Double=Datos.totalDeVentas
////  def totalDeGanancias(): Double = Datos.totalDeGanancias
//  def totalDeVentasSuperiorA(valorAComparar: Double): Int = Datos.totalSuperiorA(Funciones.valorXTotalDeVentas(_), valorAComparar)
//  def totalDeGananciasSuperiorA(valorAComparar: Double): Int = Datos.totalSuperiorA(Funciones.valorXMontoDeGanancia(_), valorAComparar)
//  def totalDeTasaGananciasSuperiorA(valorAComparar: Double): Int = Datos.totalSuperiorA(Funciones.valorXTasaDeGanancias(_), valorAComparar)
//  def asociacionDeProvinciaYtotalDeVentas(): Map[String, Double] = Datos.asociacionDeProvinciaYtotalDeVentas(anioCenso)
//
//  def nombreDeEmpresasQueSuperanUnValor(valorAComparar: Double) = Datos.nombreDeEmpresasQueSuperan(valorAComparar)
//
//  def nombreDeTodasLasEmpresasQueSuperan(valorAComparar: Double): ArrayBuffer[String] = Datos.nombreDeEmpresasQueSuperan(valorAComparar)
//  def TodasLasfuentesQueAportaronUnRegistro(anioComparar: Int): Set[Fuente] = Datos.fuentesQueAportaronUnRegistro(anioComparar)
//  def nombreDeTodasLasEmpresaconMayorGananciaEn(anioAComparar: Int): String = Datos.nombreDeLAEmpresaconMayorGananciaEn(anioAComparar)

  
  
  
}

object Datos extends CriterioDeCondicionFiltro{
	val _registros: ArrayBuffer[Registro] = new ArrayBuffer[Registro]
	var _departamentos:ArrayBuffer[Departamento]=_
	var _registro : Registro = _
	var _empresas : ArrayBuffer[Empresa] = new ArrayBuffer[Empresa]
	var _conjuntoAnios : ArrayBuffer[Int] = _
	def registros = _registros
	def departamento=_departamentos
	def agregarRegistro(r: Registro) = registros.+=(r)
	def conjuntoAnios = _conjuntoAnios  
	def empresas = _empresas 
	
	override def filtrarRegistrosXcondicion():ArrayBuffer[Registro]={
     this.registros
  }

	def agregarDepartamento(departamento:Departamento)={
    Datos._departamentos .+=:(departamento)
  }
	
  override def condicion(registro:Registro):Boolean=true
}	


object CensoTest extends App {
  
  val censo=new Censo(2014)
}
